/*
 * Tencent is pleased to support the open source community by making wwsearch
 * available.
 *
 * Copyright (C) 2018-present Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * https://opensource.org/licenses/Apache-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OF ANY KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations under the License.
 */

#pragma once

#include "index_config.h"
#include "search_status.h"
#include "virtual_db.h"

namespace wwsearch {

class SearchContext {
 private:
  TableID table_;
  VirtualDB *vdb_;
  VirtualDBSnapshot *snapshot_;
  IndexConfig *config_;
  SearchStatus status_;

 public:
  SearchContext(TableID table, VirtualDB *vdb, VirtualDBSnapshot *snapshot,
                IndexConfig *config)
      : table_(table), vdb_(vdb), snapshot_(snapshot), config_(config) {}

  virtual ~SearchContext() {}

  inline VirtualDB *VDB() { return this->vdb_; }

  inline VirtualDBSnapshot *GetSnapshot() { return this->snapshot_; }

  inline IndexConfig *GetConfig() { return this->config_; }

  inline TableID Table() { return this->table_; }

  inline SearchStatus &Status() { return this->status_; }

 private:
};

}  // namespace wwsearch
